package com.pingan.haofang.searchcloud.index.service;

import com.pingan.haofang.searchcloud.index.dto.NativeResultDTO;
import com.pingan.haofang.searchcloud.index.dto.SqlExplainDTO;
import com.pingan.haofang.searchcloud.index.dto.SqlResultDTO;

import java.util.Map;

/**
 * 搜索service
 *
 * @author LUYI374
 * @date 2017年6月28日
 * @since 1.0.0
 */
public interface SearchService {

    /**
     * 执行查询
     *
     * @param sql
     * @return
     */
    SqlResultDTO query(String sql);

    /**
     * 执行原生查询
     *
     * @param indexName
     * @param params
     * @return
     */
    NativeResultDTO nativeQuery(String indexName, Map<String, String> params);

    /**
     * SQL分析
     *
     * @param sql
     * @return
     */
    SqlExplainDTO explain(String sql);

    /**
     *
     * @param indexName
     * @param params
     * @return
     */
    NativeResultDTO esNativeQuery(String indexName, String params) throws Exception;
}
